$NG.AllReady(function (page, { useAction, useBeforeClick, useValuesChange, useClick, useUpdateRow, subscribe, useUpdateRows }) {
    console.log('detail Ready');
    const mstform = $NG.getCmpApi('p_form_htzlyj_m');
    const dgrid = $NG.getCmpApi('p_form_htzlyj_d1');
    const toolbar = $NG.getCmpApi("toolbar_top")
    toolbar.insert({
        id: "myadd",
        text: "debug测试",
        iconCls: "icon-New"
    });
    useClick(() => {
        importAttachment()
    }, 'myadd')
    const config = {
        u_yjwj_bak: []
    }
    // 定义文件类型映射关系
    const FILE_TYPE_MAP = {
        "01": "全选",
        "02": "招标文件",
        "03": "投标文件",
        "04": "开标记录",
        "05": "授权书",
        "06": "保函扫描件",
        "07": "中标通知书",
        "08": "合同"
    };

    // 存储原始数据备份
    let isFiltering = false; // 标记是否正在执行过滤操作

    // 在网格渲染后备份原始数据
    originalGridData = dgrid.getRows().map(row => ({ ...row }));
    console.log('原始数据已备份', originalGridData);
    // useAction('afterRender')(() => {
    //     // 备份原始数据

    //     // 页面加载时初始化过滤
    //     const initialValues = mstform.getItem('u_yjwj').getValue() || [];
    //     filterGridData(initialValues);
    // }, 'p_form_htzlyj_d1');

    // 监听u_yjwj多选框变化
    useValuesChange(({ args }) => {
        const selectedValues = mstform.getItem('u_yjwj').getValue() || [];
        if (JSON.stringify(selectedValues) == JSON.stringify(config.u_yjwj_bak)) {
            return
        }
        console.log('多选框值变化:', selectedValues);
        if (selectedValues.includes('01')) {
            mstform.getItem('u_yjwj').setValue(['01', '02', '03', '04', '05', '06', '07', '08'])
            config.u_yjwj_bak = ['01', '02', '03', '04', '05', '06', '07', '08']
        } else {
            // 取消全选
            if (config.u_yjwj_bak.includes('01')) {
                mstform.getItem('u_yjwj').setValue([])
                config.u_yjwj_bak = []
            }
            config.u_yjwj_bak = [...selectedValues]
        }

    }, "p_form_htzlyj_m.u_yjwj");

    // 确保在数据变化时更新备份
    useUpdateRows(({ args }) => {
    }, 'p_form_htzlyj_d1');

    function importAttachment() {
        const no = mstform.getItem("bill_name").getValue()
        $NG.execServer("getTbqkZj", { no }, async (res) => {
            if (res.count == 0) {
                return
            } else {
                const datas = JSON.parse(res.data).reduce((value, item) => {
                    value.push(item.extendObjects)
                    return value
                }, [])
                console.log(`查附件`, datas);
                // 收集所有附件fid
                const fids = datas.reduce((value, item) => {
                    value.push(item.asr_fid)
                    return value
                }, [])
                const rows = []
                for (let i = 0; i < datas.length; i++) {
                    const item = datas[i]
                    const asrcode = generateUUID()
                    const json = {
                        "asrSessionGuid": asrcode,
                        "approved": "0",
                        "typeId": 0,
                        "asrFids": [
                            String(item.asr_fid)
                        ],
                        "asrTable": "system",
                        "asrCode": null,
                        "busTypeCode": "htzlyj",
                    }
                    // 导入开始 
                    const url = 'http://10.52.119.173:30847/JFileSrv/reactAttach/importFromMyAttach'; // 请求地址

                    try {
                        const response = await fetch(url, {
                            method: 'POST',
                            headers: {
                                'Content-Type': 'application/json',
                                'dbtoken': '0001'
                            },
                            body: JSON.stringify(json)
                        });

                        if (!response.ok) {
                            throw new Error('网络响应不是OK');
                        }

                        const result = await response.json();

                        rows.push({
                            u_fj: asrcode + '@@1',
                            u_fjmc: item.asr_name,
                            u_scr: item.asr_fillname,
                            u_scsj:item.asr_filldt

                        });

                        console.log('成功收到响应:', result);
                    } catch (error) {
                        console.error('请求失败:', error);
                    }
                }
                console.log(`添加的数据`, rows);
                dgrid.addRows(rows)

            }
        })
    }


    function generateUUID() {
        // UUID v4的格式为：xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
        // 其中y位为8、9、A或B

        // 生成随机16进制数的辅助函数
        function randomHex() {
            // 生成0-0xffff的随机数，转换为16进制并补全4位
            return Math.floor((1 + Math.random()) * 0x10000)
                .toString(16)
                .substring(1);
        }

        // 生成y位的值（8-11之间的随机数，16进制为8-b）
        const y = Math.floor(Math.random() * 4) + 8;

        return (
            randomHex() + '-' +
            randomHex() + '-' +
            '4' + randomHex().substring(1) + '-' +  // 第3段以4开头
            y.toString(16) + randomHex().substring(1) + '-' +  // 第4段以y开头
            randomHex() + randomHex()
        );
    }

}, function () {
    console.log('list Ready');
});